//一维前缀和模板
/*
连接：https://www.nowcoder.com/practice/acead2f4c28c401889915da98ecdc6bf?tpId=230&tqId=2021480&ru=/exam/oj&qru=/ta/dynamic-programming/question-ranking&sourceUrl=%2Fexam%2Foj%3Fpage%3D1%26tab%3D%25E7%25AE%2597%25E6%25B3%2595%25E7%25AF%2587%26topicId%3D196
题目：


算法思路：
a. 先预处理出来⼀个「前缀和」数组：
⽤ dp[i] 表⽰： [1, i] 区间内所有元素的和，那么 dp[i - 1] ⾥⾯存的就是 [1, 
i - 1] 区间内所有元素的和，那么：可得递推公式： dp[i] = dp[i - 1] + 
arr[i] ；
b. 使⽤前缀和数组，「快速」求出「某⼀个区间内」所有元素的和：
当询问的区间是 [l, r] 时：区间内所有元素的和为： dp[r] - dp[l - 1] 。


下标从1开始：方便处理边界条件

*/

#include <iostream>
#include<vector>
using namespace std;

int main() {
    int n,q;
    cin>>n>>q;
    vector<long long> dp(n+1);
    long long sum=0;
    for(int i=1;i<=n;i++)
    {
        int num = 0;
        cin>>num;
        sum+=num;
        dp[i]=sum;
    }
    while(q--)
    {
        int l,r;
        cin>>l>>r;
        cout<<dp[r]-dp[l-1]<<endl;
    }
}